
/**
 * 我们目前所用的K、M、G、T等都是英文表示方法，分别是Kilo（103）、Mega（106）、Giga（109）、Tera（1012）的简写，
 * 更大的还有Peta（1015）、Exa（1018）、Bronto（1021）等。
 */
let moneyNum: number[] = [1000000000000000000000, 1000000000000000000, 1000000000000000, 1000000000000, 1000000000, 1000000, 1000, 1]
let moneyText: string[] = ['b', 'e', 'p', 't', 'g', 'm', 'k', '']
export default class StringHelper {


    static replace(str: string, key: number | string, value: any): string {
        str = str.replace("%{" + key + "}", value);
        return str;
    }

    static replaceOpt(str: string, opt?) {
        if (str) {
            if (str.indexOf('\\') >= 0) {
                str = str.replace(/\\n/g, '\n');
            }
            if (opt) {
                for (const key in opt) {
                    // let option:LangOption = opt[key];
                    let value = opt[key];
                    // if(option.getType() == LangOptionType.LANG_ID){
                    //     value = this.data.getValue(value);
                    // }
                    // console.log(' key ',key,' value ',value)
                    str = str.replace("%{" + key + "}", value);
                    // console.log(' str ',str)
                }
            }
        }
        return str;
    }

    /**
     * 获取最后一个字符串
     * @param str 
     * @param tag 
     */
    static laststring(str: string, tag: string) {
        let index: number = str.indexOf(tag);
        if (index >= 0) {
            let list = str.split(tag);
            return list[list.length - 1]
        }
        return str;
    }

    /**
     * 
     * @param num 
     */
    static getShortStr(num: number, len: number = 100): string {
        let i = moneyNum.length - 1;
        let money = 0;
        for (let index = 0; index < moneyNum.length; index++) {
            const element = moneyNum[index];
            if (num >= element) {
                i = index
                money = Math.floor(num * len / element);
                break;
            }

        }
        let tail = moneyText[i];
        return (money / len) + tail;
    }
}
